<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<script>
    //js作用域:就是代码名字（变量）在某个范围内起作业和效果  
    //目的是为了提高程序的可靠性，减少命名冲突

    //js作用域（es6之前）：全局作用域 局部作用域
    //全局作用域:整个script标签，或者一个单独的js文件
    var num = 10 ;
    console.log(num);
    //局部作用域：在函数内部即为局部作用域，只在函数内部起作用
    function fn(){
        //局部作用域
        var num = 20;
        console.log(num);
    }
    fn();


    //变量作用域
    //1.全局变量  在全局作用域下的变量
    //！！！！在函数内部没有声明直接赋值的变量也为全局变量
    var  num1 = 20; 
    function fn2(){
        console.log(num1);}
        //num1为全局变量
    //2.局部变量 在局部作用域下的变量
    //！！！函数的形参也是局部变量

    /* 从执行效率来看全局变量和局部变量
        （1）全局变量只有关闭浏览器时，才会被销毁 比较占内存资源
        （2）局部变量 当程序执行完毕，就会被销毁，比较节约内存资源
        */
</script>
<body>
    
</body>
</html>